import sys
import os
from PySide6.QtWidgets import *
from PySide6.QtGui import *
from PySide6.QtCore import *

class Demo(QWidget):
    def __init__(self, parent=None):
        super().__init__(parent)
        self.parent = parent
        layout = QVBoxLayout()
        layout.setAlignment(Qt.AlignmentFlag.AlignTop)
        
        toolBar=QToolBar()

        toolBar.addWidget(QLabel('Shadow:'))
        cbShadow=QComboBox()
        cbShadow.addItems(QFrame.Shadow.__members__.keys())
        cbShadow.currentTextChanged.connect(self.OnShadowChanged)
        toolBar.addWidget(cbShadow)

        toolBar.addWidget(QLabel('Shape:'))
        cbShape=QComboBox()
        cbShape.addItems(QFrame.Shape.__members__.keys())
        cbShape.currentTextChanged.connect(self.OnShapeChanged)
        toolBar.addWidget(cbShape)

        layout.addWidget(toolBar)        
        
        self.qframe=QFrame()
        self.qframe.setMinimumWidth(500)
        self.qframe.setMinimumHeight(100)        
        layout.addWidget(self.qframe)
    
        self.setLayout(layout)
    def OnShadowChanged(self,text):        
        shadow=QFrame.Shadow[text]
        self.qframe.setFrameShadow(shadow)
        self.parent.OnShowMessage(f'Set FrameShadow:{shadow}')
    def OnShapeChanged(self,text):
        shape=QFrame.Shape[text]
        self.qframe.setFrameShape(shape)
        self.parent.OnShowMessage(f'Set FrameShape:{shape}')
    
def runDemo(parent):
    wigdet =  Demo(parent)
    return wigdet